#Nutch–NIO 异步I/O
Nutch自带的Fetcher方法的主要工作流程:
- fetch方法:配置MapRunnerClass任务并运行Fetcher
- Fetcher初始化QueueFeeder,用于从抓取列表添加FetchItem到FetchItemQueue,并由QueueFeeder维护FetchItemQueus队列;之后Fetcher启动QueueFeeder后会创建用户指定数量个FetcherThread线程抓取网页。
QueueFeeder管理FetchItemQueues
FetchItemQueues队列中存放<queueId,FetchItemQueue>
类型
其中queueId有三种类型(host,protocol)(ip,protocol)(domain,protocol)
而FetchItemQueue中包含待爬队列和正在爬行队列(Inprogress)
NIOFetcher方法的主要工作流程
- fetch方法:配置MapRunnerClass任务并运行NIOFetcher
- NIOFetcher初始化并启动三个线程
- feeder:QueueFeeder线程,从抓取列表添加FetchItem到FetchItemQueue
- t:FetcherThread线程,抓取线程
- parser:PageHandler线程,抓取内容处理线程